<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    <title>ayuda</title>
  </head>
  <body>
    <big><big><span style="font-weight: bold; text-decoration:
          underline; font-style: italic;">INDICE</span></big></big><br>
    <br>
    <ul>
      <li><a href="#NuevoProyecto">Creacion de un nuevo Proyecto</a></li>
      <li><a href="#OrigenDatos">Configuracion del origen de datos</a></li>
      <li><a href="#ObtenerModeloDatos">Obtencion del modelo de datos</a></li>
      <li><a href="#ObtenerModeloER">Obtencion del modelo de
          Entidad-Relacion</a></li>
      <li><a href="#ObtenerModeloGC">Obtencion del modelo de generacion
          de codigo</a></li>
      <li><a href="#GeneracionApp">Generacion de una nueva aplicacion</a><br>
      </li>
    </ul>
    <br>
    <br>
    <br>
    <big><a style="text-decoration: underline;" name="NuevoProyecto">Nuevo



        Proyecto</a><span style="text-decoration: underline;"> </span></big><br>
    La opcion de menu <span style="font-style: italic;">Proyectos-&gt;Nuevo</span>,
    permite crear un proyecto de desarrollo nuevo, al elegir la opcion,
    se mostrara la siguiente pantalla en la que podemos elegir el nombre
    del proyecto que vamos a desarrollar. Al pulsar el boton aceptar, se
    creara la carpeta del proyecto en el directorio de proyectos. El
    directorio de proyectos es configurable a traves de la opcion de
    menu de Preferencias-&gt;<a href="#ConfiguracionIde">Configuracion
      IDE</a>.<br>
    <br>
    <img
src=""
      alt=""><br>
    <br>
    Una vez creado el proyecto, aparecera un nuevo nodo en el arbol de
    proyectos y podremos empezar a trabajar con el.<br>
    <br>
    <br>
    <br>
    <big><a style=" text-decoration: underline;" name="OrigenDatos">Origen



        de Datos.<span style="text-decoration: underline;"><br>
        </span></a></big>Una vez creado el proyecto, lo primero que
    debemos hacer (y lo unico que el IDE nos permite) es a&ntilde;adir
    el origen de datos. Para ello, haremos click con el boton derecho
    encima del nodo del proyecto y pincharemos en la opcion
    "A&ntilde;adir Origen de Datos", lo que nos permite editar la
    configuracion de acceso a la base de datos, la pantalla tiene el
    siguiente aspecto.<br>
    <img
src=""
      alt=""><br>
    Esta es una pantalla generica de tratamiento de propiedades del tipo
    propiedad&lt;-&gt; valor. Es posible a&ntilde;adir propiedades
    adicionales a traves del boton "A&ntilde;adir", asi como borrar
    propiedades innecesarias con el boton "Borrar". En este caso
    concreto, las propiedades necesarias para a&ntilde;adir un origen de
    datos son:<br>
    <div style="margin-left: 40px;">
      <ol>
        <li><span style="font-weight: bold;">driver jdbc</span>: Es la
          clase que implementa el driver JDBC de la base de datos a la
          que queremos acceder. El jar con las clases necesarias debe
          estar incluido en la variable de entonor CLASSPATH.</li>
        <li><span style="font-weight: bold;">url</span>: url completa
          para acceder a la base de datos via jdbc. Dependiendo del SGBD
          al que queremos conectarnos el contenido sera uno u otro. Ver
          la documentacion del fabricante para utilizar el formato
          correcto.</li>
        <li><span style="font-weight: bold;">usuario</span>: usuario con
          permisos de acceso a la base de datos, debe ser un usuario con
          permisos avanzados ya que se obtienen metadatos del servidor
          de base de datos que no todos los usuarios pueden obtener.</li>
        <li><span style="font-weight: bold;">password</span>:
          contrase&ntilde;a de acceso a la base de datos para el usuario
          del punto 3.<br>
        </li>
      </ol>
    </div>
    Una vez introducidos los datos y despues de pinchar en el boton
    "Aplicar", se creara, debajo del nodo de proyecto, un nuevo nodo con
    el nombre "Origen de Datos", donde los datos de acceso a la base de
    datos pueden cambiarse.<br>
    Adicionalmente, se habilitara la opcion de "Obtener Modelo de Datos"
    en el menu contextual del nodo del proyecto.<br>
    <br>
    <br>
    <big><a style=" text-decoration: underline;"
        name="ObtenerModeloDatos">Modelo de Datos.</a></big><br>
    Al seleccionar esta opcion, el IDE se conectara a la base de datos
    indicada en "Origen de Datos" y extraera el modelo de datos
    implementado en la base de datos y lo almacenar&aacute; en formato
    XML. Este modelo de datos obtenido es independiente de la base de
    datos, es decir, ser&aacute; valido para cualquier base de datos, lo
    que hace que a partir de este momento introduzcamos una separacion
    entre la logica y la implementacion concreta de la base de datos en
    cuestion. El fichero XML puede verse en el &lt;directorio
    proyecto&gt;/db/dbmodel-base.xml.<br>
    Una vez obtenido el modelo de datos, este no puede cambiarse, es la
    base de todo el proceso de desarrollo posterior.<br>
    Despues de haber obtenido el modelo de datos, se
    a&ntilde;adir&aacute; al nodo del proyecto, un hijo con nombre
    "Modelo de Datos". Adicionalmente, se habilitar&aacute; la opcion
    "Obtener Modelo E-R" en el menu contextual del nodo del proyecto.<br>
    <br>
    <br>
    <br>
    <big><a style=" text-decoration: underline;" name="ObtenerModeloER">Modelo



        ER.</a></big><br>
    Al elegir esta opcion, el IDE leera el modelo de datos almacenado en
    el fichero dbmodel-base.xml y en base a el, extraer&aacute; la
    informacion sobre entidades y relaciones e inferir&aacute; el modelo
    de entidad-relacion implementado en la base de datos. Esa
    informacion, denominada "Modelo E-R", se almacena en formato XML en
    el fichero &lt;directorio proyecto&gt;/db/ermodel.xml.<br>
    Se a&ntilde;ade al nodo del proyecto un nuevo hijo denominado
    "Modelo ER" y se habilita la opcion "Obtener Modelo de generacion de
    codigo".<br>
    Se crea un hijo de este ultimo nodo por cada entidad identificada y
    otro por cada relacion. Los nodos que representan entidades,
    permiten realizar tres acciones que tienen impacto en la futura
    generacion de codigo. La pantalla que permite editar una entidad es
    la siguiente:<br>
    <img
src=""
      alt=""><br>
    <ol>
      <li>Eleccion del tipo de entidad. En el proceso de obtencion del
        modelo de entidad-relacion, se identifica el tipo de entidad
        descubierta.</li>
      <ul>
        <li>Master. Es una entidad que representa datos maestros. Se
          identifica porque no tiene dependencias de otras entidades
          pero varias de ellas la referencian.<br>
        </li>
        <li>Normal. Es una entidad que tienen dependencias solo de
          entidades maestras y puede ser referenciada por otras.<br>
        </li>
        <li>Dependant. Es una entidad que referencia a otras entidades,
          en la nomenclatura Entidad-Relacion seria una entidad debil.<br>
        </li>
        <li>RelationShip. Realmente no es una entidad, representa una
          tabla que implementa un relacion N:M.<br>
        </li>
        <li>Unknown. Desconocido, no cumple con ninguna de las
          anteriores (no deberia existir ninguna).</li>
      </ul>
      <li>Generar Identidad: La identidad de una entidad, se refiere al
        valor unico que la identifica y que permite diferenciarla de
        otras entidades el mismo tipo, tiene un relacion muy estrecha
        con las claves primarias de las bases de datos. Esta opcion solo
        esta disponible si la clave primaria que identifica esta entidad
        en la tabla correspondiente en la base de datos no es gestionada
        por el SGBD (por ejemplo con valores autoincrementales o
        secuencias). Activar esta casilla, implica que se
        generar&aacute; codigo para la generacion automatica de claves
        primarias. No marcarla implica que no se generara dicho codigo y
        por lo tanto la responsabilidad de crear objetos de este tipo de
        entidad con una clave primerria correcta recae sobre el
        programador (o aplicacion).<br>
      </li>
      <li>Atributos representativos: Se utilizan para visualizar la
        entidad en los cuadros de seleccion, dejar en blanco estos
        atributos implica en el los cuadros de seleccion aparecera el
        codigo identificador (clave primaria) en lugar de un atributo
        que a simple vista permite conocer la entidad que estamos
        eligiendo.<br>
      </li>
    </ol>
    El tipo de entidad, podria permitir generar codigo diferente para
    cada tipo, por el momento solamente se diferencian las entidades
    Master del resto. La diferencia de marcar una entidad como Master,
    significa que el los formularios de edicion y de busqueda, aparecen
    campos de seleccion tipo &lt;select&gt; en lugar de botones de
    busqueda.<br>
    <br>
    Los cambios que se producen en las entidades se almacenan en el
    fichero xml que representa el modelo entidad-relacion, puesto que se
    utilizara posteriormente.<br>
    <br>
    La ultima parte de la pantalla es simplemente informativa. En
    futuras versiones podria implementarse la adicion de nuevas
    relaciones no implementadas en la base de datos.<br>
    <br>
    <br>
    <big><a style=" text-decoration: underline;" name="ObtenerModeloGC">Modelo



        Generacion Codigo.</a></big><br>
    <br>
    Una vez obtenido el modelo ER, se activa la opcion de "Obtener
    Modelo de Generacion de Codigo" en el menu contextual del proyecto.<br>
    Obtener el modelo de generacion de codigo, significa que el IDE, a
    partir del fichero del modelo de datos y del fichero del modelo de
    entidad relacion, genera un nuevo fichero, que representa el modelo
    de generacion de codigo. En este modelo se decide que atributos de
    las entidades estaran presentes en cada formulario de la aplicacion.
    Por cada entidad, se permite elegir los campos presentes para el
    fomulario de edicion, el formulario de busqueda y el formulario
    multilinea. La pantalla que permite elegir es la siguiente:<br>
    <img
src=""
      alt=""><br>
    <br>
    <br>
    <big><a style=" text-decoration: underline;" name="GeneracionApp">Generacion



        aplicaciones.</a></big><br>
    Una vez obtenida la terna de modelos, a saber: modelo de datos,
    modelo de entidad-relacion y modelo de generacion de codigo, el IDE
    ya tiene toda la informacion necesaria para construir una o varias
    aplicaciones para el proyecto en curso. Es de destacar que se
    permite generar varias aplicaciones para el mismo proyecto,
    simplemente cambiando alguno de los parametros de alguno de los
    modelos, el IDE generara aplicaciones con comportamientos
    ligeramente diferentes. Estas ligeras diferencias podrian ser
    importantes en futuras versiones de la herramienta.<br>
    <br>
    Para generar una nueva aplicacion, basta con elegir la opcion "Nueva
    Aplicacion" en el menu contextual del proyecto. Esta accion provoca
    las siguientes consecuencias:<br>
    <ul>
      <li>Se genera un nodo de aplicacion por debajo del proyecto, desde
        el que se podran realizar acciones basicas, como compilar y
        desplegar la aplicacion y regenerar el codigo correspondiente a
        alguna de sus partes.</li>
      <li>Se crea un carpeta para una nueva aplicacion en la carpeta
        apps del directorio del proyecto.</li>
      <li>Se genera, dentro de la carpeta src/dto los JavaBeans que se
        utilizaran en toda la aplicacion. Estas clases encapsulan todos
        los datos de las entidades identificadas en el modelo entidad
        relacion.</li>
      <li>Se genera, dentro de la carpeta src/dao las clases de acceso a
        datos para esta aplicacion, siguiendo el patron DAO (Data Access
        Object). Con estas clases, se pueden grabar, recuperar de la
        base de datos, actualizar y eliminar entidades. Los metodos
        utilizan como parametros objetos DTO (los generados en el punto
        anterior), no hay referencia a campos concretos de base de
        datos. Ademas se crea una clase factoria que permite obtener el
        DAO adecuado en cada momento.</li>
      <li>En la carpeta src/bo clases de negocio, patron BO (Bussines
        Object), que almacenan la logica de negocio y relaciones entre
        entidades. Por cada entidad permite obtener los objetos DTO que
        tienen relacion con esa entidad.</li>
      <li>En la carpeta src/PKGenerators, se generan las clases de
        utilidad que utiliza la aplicacion para generar claves primarias
        de entidades que la base de datos indica que tienen clave
        primaria pero esta no esta gestionada por el SGBD (no es
        autoincremental o secuencia)</li>
      <li>Se genera en la carpeta src/validator, una clase que valida
        los datos al crear una entidad antes de introducirla en la base
        de datos.</li>
      <li>Se genera en la carpeta src/servlet, los servlets que utiliza
        la aplicacion para gestionar. Se utiliza una aproximacion MVC
        pero sin restringir el controlador a un solo servlet. Existira
        un servlet por cada entidad y accion a realizar, en concreto un
        servlet para crear objetos, un servlet para busqueda y un
        servlet para actualizacion.</li>
      <li>Se genera en la carpeta web/jsp una jsp (la parte "vista" del
        modelo MVC) por cada tipo de formulario necesario por entidad.
        Uno para edicion, otro para filtro de busqueda y otro para
        resultados en forma de lista.</li>
      <li>Se genera en la carpte web, un fichero html "indice" que
        permite acceder a las jsps generadas en el punto anterior.</li>
      <li>Se genera por ultimo un fichero build.xml con estructura de la
        herramienta ant que permite compilar, empaquetar y desplegar la
        aplicacion en un servidor tomcat.<br>
      </li>
    </ul>
    <br>
    <br>
    <br>
    <big><a style=" text-decoration: underline;" name="ConfiguracionIde">Configuracion



        IDE<br>
        <br>
      </a><span style="text-decoration: underline;"> </span></big>
  </body>
</html>
